System and method for data transfer acceleration in a TCP network environment

ABSTRACT

A system and method for increasing the efficiency of broadband information channels using an optimization engine that monitors, measures and controls actual data throughput in TCP networks. The optimization engine is implemented as a single sided proxy server, receiving, sending and controlling all data traffic in the network. The engine defines and monitors the TCP session capacity for individual channels, and generates responses to accelerate data flow speed, in existing access pipes. The engine generates and sends out fake acknowledgement messages to an information source, and influences data flow speed and accuracy by controlling the quantity, frequency and content of these messages. Furthermore the present invention enables maximizing the receive window size of clients by combining the available buffer capacity of multiple clients into shared memory space, and allocating usage of this space according to real time statistical calculations. The engine also checks the data received by clients for lost packets, and when discovered, initiates a fast recovery mechanism that includes sending of multiple duplicate fake acknowledgement messages to a relevant server.

FIELD AND BACKGROUND OF THE INVENTION

[0001] The present invention relates to a system and method forincreasing the efficiency of broadband information traffic using meansthat monitor, measure and control actual data throughput in TransmissionControl Protocol (TCP) networks. This is achieved by defining andmonitoring session capacity, and controlling session responses.

[0002] There is a significant gap between nominal bandwidth andeffective throughput in broadband access pipes in TCP networks, duemainly to frequently congested routers throughout much of the Internet.In addition, Quasi-static routing (see “Measurements and analysis ofEnd-to-End Internet Dynamics” by Vern Paxon—University of California,Berkeley, Calif., April 1997.) puts most of the responsibility for theactual transfer speed on TCP. There is therefore inefficient usage ofaccess pipes at almost every point of access between broadband clientsand servers.

[0003] TCP protocol controls the majority of Internet traffic. The TCPflow control, or way that TCP manages data flow, is thus crucial fordata flow efficiency, as it determines the TCP session performance(effective throughput). Current TCP flow control works according to thefollowing principles:

[0004] Data is transmitted in segments

[0005] There is a sliding window policy

[0006] The transmitter sends a batch of consequent segments according tothe Transmission Window/Congestion Window (CWND)

[0007] Delayed acknowledgements (ACKs) are sent by the receiver

[0008] Lost packets are retransmitted

[0009] The receiver's Receive Window determines flow control.

[0010] Over the years, however, several improvements have been made onthe basic TCP.

[0011] These include:

[0012] Slow start and Congestion Avoidance (RFC 1122)

[0013] Fast Retransmit and Fast Recovery (RFC 2001)

[0014] TCP Extensions for High Performance (RFC 1185/1323)

[0015] In spite of these improvements, there have, however, been majorperformance problems, and these have resulted in further solutionseeking. For example:

[0016] RFC 2488: Enhancing TCP over Satellite Channels (January 1999)

[0017] RFC 2525: Known TCP Implementation Problems (March 1999)

[0018] RFC 2582: The NewReno Modification to TCP's Fast RecoveryAlgorithm (April 1999)

[0019] RFC 2757: Long Thin Networks (January 2000)

[0020] RFC 2760: Ongoing TCP Research related to Satellites (February2000)

[0021] Continuing Internet development, in terms of both quantity oftraffic and quality of data have outgrown current solutions. In responseto these Internet access challenges, various alternative solutions andleading players in these segments have proposed the following solutions:

[0022] 1. Caching solutions—effective where content is frequently usedover a short period of time

[0023] 2. Pre-fetching solutions—mainly client-side software solutionsthat overload the ISP network

[0024] 3. Load balancing solutions—effective when Web-site servers arethe bottleneck

[0025] 4. Policy management/traffic shaping solutions—mainlyprioritizing preferred customers over common customers

[0026] 5. Web site offloading solutions—Offloading the Web site fromheavy tasks frees its resources, thus increasing its capacity.

[0027] 6. Compression-based accelerators—by installingcompression/decompression software at both ends of a communicationsegment.

[0028] In spite of the above mentioned attempts to improve on the datathroughput efficiency in TCP networks, the predominant current TCParchitecture works as follows:

[0029] TCP breaks the incoming application byte stream into segments.The maximum size of a segment is called the MSS. A segment consists of aheader, and some data. The last data byte in each segment is identifiedwith a 32-bit byte count field in the segment header.

[0030] When a segment is received correct and intact, a specialacknowledgement segment is returned to the sending server, containingthe byte count of the last byte correctly received.

[0031] The network service can fail to deliver a segment. If the sendingTCP waits for too long for an acknowledgment, it times out and resendsthe segment, on the assumption that the datagram has been lost. Thenetwork can potentially deliver duplicated segments, and can deliversegments out of order. TCP buffers or discards out of order orduplicated segments appropriately, using the byte count foridentification. In addition to the issues of data loss and dataduplication, TCP suffers from another major disadvantage. The server ina TCP network responds to the acknowledgement messages received fromclients. The system, however, does not have any knowledge of the actualsession capacity or potential. Therefore while there is availablecapacity, the TCP continues to send data on the assumption that there isavailable bandwidth. However when the point of capacity is reached, theTCP automatically ceases data transfer, and thereby allows the sessioncapacity to be 100% available. However, this continual ceasing andrestarting of data transfer wastes precious data transfer time, oftenshuts down the traffic flow temporarily causing accompanying problems,and provides a solution that does not optimize the session capacity.

[0032] There is thus a widely recognized need for, and it would behighly advantageous to have, a system that can minimize the gap betweennominal bandwidth and effective throughput in broadband access pipes.There is also a widely recognized need for enhancing the current TCPprotocol in order to maximize the efficiency of the existing networkinfrastructure, so that data can be transferred at higher speeds andwith higher accuracy.

[0033] The present invention offers an alternative solution to thebroadband Internet access bottleneck, based on manipulating the TCPprotocol in order to attain fast data transfer and fast recovery of dataloss.

[0034] The present invention minimizes the gap between nominal bandwidthand effective throughput by monitoring, tracing and controllingbi-directional data flow processes between both parties.

SUMMARY OF THE INVENTION

[0035] According to the present invention there is provided a system forminimizing the gap between effective and nominal data throughput, bymonitoring, tracing and controlling bi-directional data flow processesbetween both parties. The present invention includes a proxy server withan engine that uses an algorithm to monitor, measure and control datathroughput. This is achieved by defining session capacity of individualsessions, tracing session progress, controlling session responses, andrapidly recovering packet losses. The consequence of this is anenhancement of the TCP/IP protocol, by causing TCP to send informationat optimum speed, according to the following steps:

[0036] 1. Identifying active sessions;

[0037] 2. Defining and measuring on a real time basis the sessioncapacity;

[0038] 3. Analyzing incoming data packets from the server;

[0039] 4. Separating packets to each concurrent active TCP session;

[0040] 5. Sending a configured acknowledgement message to the server;

[0041] 6. Emulating an infinite client in response to the server, bycontrolling the received window side in acknowledgement messages;

[0042] 7. Deploying an Interpacket delay mechanism

[0043] 8. Implementing an acceleration algorithm based on current,measured session capacity;

[0044] 9. Remotely controlling the server control/data flow pace bycontrolling the timing of acknowledgement messages from the client;

[0045] 10. Implementing fast duplicating acknowledgements for achievingfast recovery of lost packets.

[0046] 11. The present invention manipulates acknowledgement informationfrom the client side, causing the TCP network to send information fasteror slower, as well as rapidly recovering lost packets. The components ofthe present invention include:

[0047] A PEP (Performance Enhancement Proxy) server, which is a proxyserver referred to within this document as BITmax.

[0048] A Session Management Engine or optimizer in the above mentionedserver.

[0049] A set of algorithms, referred to as a scalable TCP/IPconnectivity (STIC) algorithm, within the above mentioned optimizer.

BRIEF DESCRIPTION OF THE DRAWINGS

[0050] The invention is herein described, by way of example only, withreference to the accompanying drawings, wherein:

[0051]FIG. 1 is a flow chart representing where and how the Bitmaxserver of the present invention functions, between the BITmax and theServer

[0052]FIG. 2 is a flow chart illustrating the basic functioning of thepresent invention between a client and the Bitmax server.

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0053] The present invention is of a system and method for increasingthe efficiency of broadband information traffic. This is achieved byusing a proxy server with an optimization engine that monitors, measuresand controls data throughput. Accordingly, the present invention definessession capacity, increases client capacity and session memory, andrecovers lost data and controls session responses so as to achieveoptimum efficiency when using a communication network.

[0054] 1. Specifically, the present invention can be used to manipulatedata acknowledgement information from the client side, causing the TCPnetwork to send information faster or slower, as well as recover lostpackets. The present invention may be in the form of a box that sits atthe first router or hop at the point of Internet access (point ofconcentration). It may sit at or near an ISP or a Web server, receivingand forwarding all traffic to and from that point. The proxy server ofthe present invention is single sided, in that it requires specificsoftware only from the server side or the client side. In this way theuser at the client side does not need to act in any way to set up thesystem, and it operates in a transparent way towards the user. Once setup, it also operates in a transparent way towards the server. The setupof the system requires specific software only on the server side or theclient side. in the typical embodiment of the present invention. Howeverit is also optional to install the Bitmax server with its optimizationengine software at any point in a TCP network, between or within anyservers and/or clients.

[0055] The components of the present invention include:

[0056] i. A front end PEP (Performance Enhancement Proxy) server: Thisserver is installed as a transparent front-end performance gateway in aWeb server environment. This server is interoperable with every TCP/IPclient, with no software installation required on the client side. Thisproxy server sits between end-to-end users, and is responsible forsending and receiving all data between client and server stations.

[0057] ii. An optimization engine that is implemented as a SessionManagement Engine. This engine or optimizer is a software componentinstalled in the PEP server, that analyses active sessions, monitorsindividual sessions as well as the overall picture of the BandwidthBalance, and generates responses based on session data.

[0058] iii. A scalable TCP/IP connectivity algorithm (STIC algorithm)that analyses the session data in order to calculate the actual sessioncapacity, and appropriate responses. The optimization engine run thisalgorithm, enabling the system to automatic make decisions based on realtime information, and accordingly to initiate responses in order tooptimize data flow.

[0059] The principles and operations of such a system according to thepresent invention may be better understood with reference to the FIGURESand the accompanying descriptions, wherein:

[0060]FIG. 1 is a flow chart that represents where the proxy server 13of the present invention (called BITmax server) functions in the TCPnetwork, according to its preferred embodiment. In this case, thepresent invention operates as a transparent intermediate performanceenhancement proxy in a TCP network environment. The Bitmax server 13sits in between or inside any chosen servers 15 or clients 14. Itreceives all data traffic and sends all data traffic between any points.In the process of receiving and forwarding data, the Bitmax serveranalyses all data, including header messages, packet data andacknowledgement messages. It is transparent in that it does not requiresetup at the client side, and nor neither the client nor the server areaware of its functioning at all. It acts as a client towards a server,and as a server towards a client.

[0061] According to the preferred embodiment of the present invention,there is a method and system for accelerating data traffic using meansthat monitor, measure and control actual data throughput in TCPnetworks. This is achieved by the following steps, with reference toFIGS. 1 and 2:

[0062] Step 1: Identifying and tracing currently active TCP sessions ona per session basis

[0063] Step 2: Measuring current session capacity, based on Round TimeTrip (RTT)) measurements of each active session, and tracing sessioncapacity trends.

[0064] Step 3: Responding to session capacity trends.

[0065] Step 4: Application of tools to optimize data transfer.

[0066] Step 5: Monitoring session progress and providing feedback to theoptimization engine for continual trend analysis.

[0067] Step 6: Identifying and responding to data losses.

[0068] Following is a more detailed outline of how the present inventionoperates according to the previously mentioned steps:

[0069] Step 1: Upon receiving data 12 from a server, the optimizationengine (which is included within the Bitmax Server 13) identifies andtraces 22 the currently active TCP session on a per session basis,including:

[0070] i. identifying session establishment procedure;

[0071] ii. identifying session disconnection procedure; and

[0072] iii. extracting and registering relevant session parameters in anactive sessions data base.

[0073] This process enables the optimization engine to interact fullywith each of the active clients, and to use the shared memorycapabilities of the various active clients to increase the clientreceive windows and thereby achieve optimum efficiency for datatransfer.

[0074] Step 2: The optimization engine then analyses and measures 23 thecurrent session capacity, based on Round Time Trip (RTT) 27 measurementsof each active session, and traces session capacity trends. The use ofRTT 27 and reverse RTT to measure session capacity provides an accurateway of determining effective data throughput. The optimization engine 13analyses and monitors both the individual user sessions and the overallor combined capacity of a TCP network at a given time. This processincludes the following steps:

[0075] a) Between the proxy server 33 and the client 32 in FIG. 2

[0076] i. receiving application data 31 from a server 33;

[0077] ii. immediately forward the data 31 to the client 32, accordingto actual client receive window size;

[0078] iii. receiving real acknowledgement messages 34 from the client32, and generating fake acknowledgement message/s 35 based on realacknowledgement message/s 34 received.

[0079] iv. forwarding fake acknowledgement 35 message to the server 33,and tracing 36 Round Trip Time (RTT).

[0080] v. checking 37 if acknowledgement messages carry application datain addition to the acknowledgement message. If they do, forward 38 theapplication data 37 within the fake acknowledgement message 35;

[0081] vi. verify that all information was received by client 32;

[0082] vii. in the case where all information segments were notreceived, segments are retransmitted to client 32;

[0083] viii. when information received is verified, erase sent data fromoutput queue towards client 32;

[0084] b) Between proxy server and chosen server:

[0085] i. generating a fake acknowledgement message 35 (in FIG. 2) basedon real acknowledgement messages received from the client 32;

[0086] ii. sending fake acknowledgement messages 35 to the server 33;

[0087] iii. receiving data from the server 33 and measuring currenteffective throughput by means of Bytes per Second (BpS).

[0088] iv. measuring the last reverse round trip time (reverse RTT) 27,which is the time difference between sending one of the fakeacknowledgement messages and the time at which the first bite of data isreceived from the server in response to the fake acknowledgementmessage.

[0089] v. maintaining a record of (n) previous reverse RTT's 27;

[0090] vi. executing an algorithm on the information collected from saidrecording of previous reverse RTT's 27 and said tracing, to formulatetrends and make estimations of future said bursts, which provides anindication of current status of session;

[0091] Step 3: Responding to session capacity trends, including sendingout false acknowledgement messages to the server and controlling thetiming/frequency and content of fake acknowledgement messages 35. Theoptimization engine, for example, can send duplicate acknowledgementmessages or alternatively send fewer acknowledgement messages than thenumber of true acknowledgement messages that should be sent to a server.This is decided according to the following guidelines:

[0092] a) if the session capacity/status is slowing down, the BITmaxserver 13 acts to slow down data transfer by one or more of thefollowing steps:

[0093] (1) reducing size of the receive window stated in fakeacknowledgement messages 35;

[0094] (2) increasing the number of acknowledged data bytes 34acknowledged by fake acknowledgement messages 35;

[0095] (3) increasing time intervals between fake acknowledgementmessages 34 and data segments.

[0096] b) if the session capacity/status is underutilized, said BITmaxserver 13 acts to accelerate data transfer to use available capacity byone or more of the following steps:

[0097] (1) increasing size of the receive window stated in fakeacknowledgement messages 35. The optimization engine 13 can combine thereceive buffers (the data receiving memory capacity) of the variousclients into a shared common memory which is distributed among theclients. In this way the receive window representing the data receivingcapacity of clients is greatly enhanced.

[0098] (2) reducing the number of acknowledged data bytes acknowledged34 by each fake acknowledgement messages 35;

[0099] (3) reducing time intervals between fake acknowledgement messages35 and data segments 34.

[0100] c) if the session capacity/status is at or close to optimumutilization, said proxy server monitors current session status andmaintains current performance.

[0101] Step 4: Application of tools 25 to optimize data transfer,including:

[0102] i. Interpacket delay within any consequent data-only flow. Thistool is valid for server side configurations only.

[0103] ii. controlling receive window size of client by emulating aninfinite client, including maximizing receive windows and allocatingshared memory to serve individual clients. An infinite client is a termillustrating the process by which the Bitmax server emulates the clientcapacity towards the server. In this way, the server believes that theclient whom it is communicating with, which is actually the Bitmaxserver, has a very large data receiving capacity. The cumulativecapacity of such an action can prove to be even larger than the datasending capacity of the server, and so it may appear to have infinitecapacity. This is achieved by allocating the cumulative receive buffercapacity to clients, according to statistically based dynamic allocationper session; and

[0104] iii. using compiled tracing information (session capacity andtrends) to determine content and frequency of fake acknowledgementmessages, to manipulate data transfer rates in order to achieve optimumspeed and accuracy.

[0105] Step 5: Monitoring session progress, and using this monitoring inorder to make automatic decisions whether to accelerate or slowdown 26data transfer, and providing feedback to the optimization engine, whichcontinues to trace and respond to session capacity on a real time basis.

[0106] Step 6: In the process of receiving data packets from the server,identifying and responding to data losses 28, including:

[0107] i. identify situation of lost packets by tracing sequence numbersof packets received from the server, by tracing sequence numbers ofpackets received from the server and calculating where data packets havenot been received by the client and/or BITmax;

[0108] ii. when recognized, activate a fast retransmission mechanism 29to recover lost packets rapidly. This includes sending multiple(duplicate) acknowledgement messages where the acknowledgement numbercorresponds to the last received byte before the lost data packet;

[0109] iii. after receiving a lost segment, send a fake acknowledgementmessage 35 that acknowledges the lost segment and all the otherconsequent data packets that were correctly received. For example, ifpackets 4,5,6,8.9 were received initially, duplicate acknowledgementmessages may have been sent that 6 was received, causing the server tosend 7. Once received, the optimization engine may send acknowledgementmessages for packets 8 and 9 in order to cause the server to continuesending packets 10, 11 etc.

[0110] Session Capacity, although an unknown concept before the presentinvention, is the predominant factor in determining the transmissionpace across the TCP/IP network. The analysis and monitoring of sessioncapacities according to the present invention is achieved through usingthe STIC algorithm: This algorithm, or more accurately a group ofalgorithms, stands for Scalable TCP/IP Connectivity (STIC) algorithm. Itis the combination of procedures discussed above by which theoptimization engine analyzes, calculates, monitors session capacity of aTCP network and takes decisions how to best respond in order to optimizedata flow. The various components of the STIC algorithm are:

[0111] i. session identifier—recognizes start of session and sends datato analysis module. Also recognizes end of session.

[0112] ii. Tracing and analysis—keeps the sessions parameters, measures,recognizes trends and reports to the response handler. Also responsiblefor tracing session behavior after activating the response tools.

[0113] iii. System response (Response handler)—chooses the rightresponse tool to use:

[0114] Accelerate, slow-down or unchanged.

[0115] iv. Data Loss recognition and recovery—recognizing packet lossand activating request for retransmission and conducting fast recovery.

[0116] Advantages of the Present Invention:

[0117] Smooths congested routers when installed near the server side,not just by reducing the CWND (Congestion Window), but also byincreasing the Inter Packet Delay.

[0118] Estimates and utilizes the currently available bandwidth of thevirtual end-to-end pipe.

[0119] Provides full control over the overall bandwidth balance in acertain Web site

[0120] Responds effectively to lost packet situations.

[0121] Creates a new state machine that better tracks and responds tothe session dynamics.

[0122] Responds to real time trends, as well as to discrete situations.

[0123] Another way that this system can be used is by stationing theBitmax server at the server side or at any other point along the TCPpath, including within a server and/or within a client. This includesthe servers of carriers, PTT's, ISP's, Web hosting companies' etc.

[0124] While the invention has been described with respect to a limitednumber of embodiments, it will be appreciated that many variations,modifications and other applications of the invention may be made.

What is claimed is:
 1. A system for optimizing data transfer at anypoint in time in a TCP network, comprising: i. TCP network fortransferring data between at least two computer devices; ii. client foraccessing Internet using said TCP network; iii. server for transferringcontent over said TCP network; and iv. proxy server for receiving andforwarding all data sent between servers and clients in a network,thereby emulating a server towards a client, and emulating a clienttowards a server in said TCP network.
 2. The system of claim 1, whereinsaid proxy server incorporates an optimization engine for tracking andcontrolling data throughput in a TCP network from within said proxyserver.
 3. The system of claim 1, wherein said proxy server ispositioned between any server and client, and controls all data andmessages transferred between said server and said client.
 4. The systemof claim 1, wherein said proxy server is positioned within any server orwithin any client, and controls all data and messages transferredbetween said server and said client.
 5. The system of claim 2, whereinsaid proxy server is single sided, stationed only at the server side. 6.The system of claim 2, wherein said proxy server is single sided,stationed only at the client side.
 7. The system of claim 2, whereinsaid optimization engine uses a Scalable TCP/IP Connectivity (STIC)algorithm to monitor data flow in said TCP network.
 8. The system ofclaim 7, wherein said scalable TCP/IP connectivity (STIC) algorithm isfurther used to track, analyze and control data flow in said TCP network9. The system of claim 2, wherein said optimizer monitors, traces andcontrols bi-directional data flow between two or more parties.
 10. Thesystem of claim 2, wherein said optimization engine monitors real timesession capacity of TCP sessions.
 11. The system of claim 2, whereinsaid optimization engine is operative to forward packets unchanged,modify packets, generate new packets and discard packets.
 12. The systemof claim 2, wherein said optimization engine monitors and traces theoverall available bandwidth in a TCP network.
 13. A method forincreasing efficiency of data transfer in a TCP network, comprising thesteps of: i. identifying and tracing currently active TCP sessions on aper session basis; ii. measuring current session capacity for individualactive sessions. iii. tracing session capacity trends; and iv.generating fake acknowledgement messages to remotely manipulate serverbehavior, according to the current session capacity.
 14. The method ofclaim 13, wherein said tracing session capacity trends is achievedaccording to the following steps: i. maintaining a record of previousRound Trip Time; and ii. formulating trends and estimating sessioncondition based on said previous Round Trip Time.
 15. The method ofclaim 13, wherein said execution of responses includes manipulating thefrequency of said fake acknowledgement messages.
 16. The method of claim13, wherein said execution of responses includes manipulating thecontent of said fake acknowledgement messages.
 17. The method of claim15, wherein said execution of responses further comprises emulating aninfinite client by combining the receive buffers of multiple clientsinto a shared common memory.
 18. The method of claim 17, wherein saidemulating an infinite client further comprises controlling receivewindow size of client in said fake acknowledgement messages.
 19. Themethod of claim 17, wherein said emulating an infinite client furthercomprises allocating on dynamic basis a large amount of shared memorybuffers in a proxy server for a group of sessions, enabling thosesessions to increase their receiving capacity.
 20. The method of claim13, further comprising monitoring session responses to said datatransfer manipulation in order to provide real time feedback for saidtrends tracing.
 21. The method of claim 13, wherein the method forincreasing the efficiency of data transfer in a TCP network, furthercomprises the steps of: i. identifying situations of packets notreceived by mechanisms selected from the group consisting of clients andservers; ii. activating a fast retransmission mechanism (multipleduplicate acknowledgment messages) to recover said lost packets; andiii. sending a fake acknowledgement message that acknowledges said lostpacket and all the other consequent data packets that were correctlyreceived.
 22. A method for determining session capacity at any giventime in a TCP network, comprising: i. Identifying individual activesessions; ii. Generating fake acknowledgement messages based on realacknowledgement messages received from a client; iii. Sending said fakeacknowledgement messages to a server; and iv. Analyzing individualsession data transfer rates based on RTT (Round Trip Time) trends.